import Cookies from 'js-cookie'

/**
 * 原生cookie用法详解
 * https://www.jianshu.com/p/6307073f5fa4
 *
 * 系统已经把jsCookie放在Vue原型里, 在页面里可直接用 this.$cookie调用，
 * 但是更多时候，建议使用统一封装好的cookieUtil的以下方法
 *
 *
 * 注意事项:
 * cookie存储的是object 即任意类型(字符串/数组/json对象)都可以,
 *
 * 但是 cookie.get()方法取出的都是字符串，如
 * 跟一般使用不同的是，从Cookie中取出的时候，要从字符串转换成json格式：
 const user = {
  name: 'lia',
  age: 18
}
 Cookies.set('user', user)
 const liaUser = JSON.parse(Cookies.get('user'))
 */


/**
 * 设置cookie key value
 * @param key
 * @param value
 * 默认情况下cookie有效期截止至用户退出浏览器
 */
export function setKV(key, value) {
    // Create a cookie, valid across the entire site:
    // Cookies.set('name', 'value');
    Cookies.set(key, value);
}

/**
 * 设置cookie key value 过期天数   (常用)
 * @param key
 * @param value
 * @param expireDays
 *
 * expires : 定义有效期。如传入Number，则单位为天，
 * 也可传入一个Date对象，表示有效期至Date指定时间。
    默认情况下cookie有效期截止至用户退出浏览器
 */
export function setKVAndExpireDays(key, value, expire) {
// Create a cookie that expires 7 days from now, valid across the entire site:
//     Cookies.set('name', 'value', { expires: 7 });
    Cookies.set(key, value, {expires: expire});
}

/**
 * 按key查询cookie
 * @param key
 * @returns {*}  若没有key对应的value,则返回 undefined
 */
export function getByKey(key) {
// Read cookie:
//     Cookies.get('name'); // => 'value'
//     Cookies.get('nothing'); // => undefined

    return Cookies.get(key);
}

/**
 * 查询目前所有存储的cookie
 * @returns {*}    返回所有cookie 组成的json对象 如{k1:v1 ,k2:v2 ,k3:v3}
 */
export function getAll() {
// Read all visible cookies:
  return    Cookies.get(); // => { name: 'value' }
}

/**
 * 按key删除
 * @param key
 */
export function deleteByKey(key) {
    Cookies.remove(key);
}



